<?php

namespace projetPHP\idkdoBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

use projetPHP\idkdoBundle\Entity\Compte;

class InscriptionController extends Controller {
    

	public function inscriptionAction(){

            // On crée un objet Compte.
            $compte = new Compte();
            $compte->setDateInscription(new \Datetime());

            // On crée le FormBuilder grâce à la méthode du contrôleur.
            $formBuilder = $this->createFormBuilder($compte);

            // On ajoute les champs de l'entité que l'on veut à notre formulaire.
            $formBuilder
                ->add('login', 'text')
                ->add('pass', 'password')
                ->add('mail', 'text');

            // On génère le formulaire
            $form = $formBuilder->getForm();


            // On récupère la requête.
            $request = $this->get('request');

            // On vérifie qu'elle est de type « POST ».
            if( $request->getMethod() == 'POST' )
            {
                // On fait le lien Requête <-> Formulaire.
                $form->bindRequest($request);
                // On vérifie que les valeurs rentrées sont correctes.
                if( $form->isValid() )
                {
                    // On enregistre notre objet $compte dans la base de données.
                    $em = $this->getDoctrine()->getEntityManager();
                    $em->persist($compte);
                    $em->flush();

                    $this->get('session')->setFlash('info', 'Inscription validée');

                    // On redirige vers la page d'accueil
                    return $this->redirect($this->generateUrl('projetPHPidkdoBundle_homepage'));
                }
            }

               
        return $this->render('projetPHPidkdoBundle:Default:inscription.html.twig', array('form' => $form->createView(),));
    }

    public function loginAction(){
        $session = $this->get('session');

        // si l'utilisateur est déjà connecté
        if(($session->get('util'))!=null){
            $session->setFlash('info', 'Vous êtes déjà connecté en tant que '.($session->get('util')->getLogin()));
            return $this->render('projetPHPidkdoBundle:Default:connexion.html.twig');
        }
        // si il a complété et envoyé le formulaire
        elseif ($this->get('request')->getMethod() == 'POST') {
            $repository = $this->getDoctrine()
                   ->getEntityManager()
                   ->getRepository('projetPHPidkdoBundle:Compte');
            $listeCompte = $repository->findAll();
            $request = $this->get('request');
            foreach ($listeCompte as $user) {
                if($user->getLogin()==$request->request->get('login') && $user->getPass()==$request->request->get('pass')){
                    $session->set('util', $user);
                    $session->setFlash('info', 'Bonjour, ' .$user->getLogin(). ' ! Vous êtes à présent connecté');
                    return $this->redirect($this->generateUrl('projetPHPidkdoBundle_homepage'));
                }
            }
            $session->setFlash('info', 'Login et/ou mot de passe invalide');
            return $this->render('projetPHPidkdoBundle:Default:connexion.html.twig');
        }
        // sinon, juste afficher le formulaire
        else {
            return $this->render('projetPHPidkdoBundle:Default:connexion.html.twig');
        }
    }

    public function logoutAction(){
        $session = $this->get('session');
        $session->set('util', null);

        $session->setFlash('info', 'Vous êtes à présent déconnecté.');
        return $this->redirect($this->generateUrl('projetPHPidkdoBundle_homepage'));
    }

}
